var $protobuf = window.protobuf;
$protobuf.roots.default=window;
// Common aliases
var $Reader = $protobuf.Reader, $Writer = $protobuf.Writer, $util = $protobuf.util;

// Exported root namespace
var $root = $protobuf.roots["default"] || ($protobuf.roots["default"] = {});

$root.awesomepackage = (function() {

    /**
     * Namespace awesomepackage.
     * @exports awesomepackage
     * @namespace
     */
    var awesomepackage = {};

    awesomepackage.AwesomeMessage = (function() {

        /**
         * Properties of an AwesomeMessage.
         * @memberof awesomepackage
         * @interface IAwesomeMessage
         * @property {number} meesageId AwesomeMessage meesageId
         * @property {Uint8Array|null} [data] AwesomeMessage data
         */

        /**
         * Constructs a new AwesomeMessage.
         * @memberof awesomepackage
         * @classdesc Represents an AwesomeMessage.
         * @implements IAwesomeMessage
         * @constructor
         * @param {awesomepackage.IAwesomeMessage=} [properties] Properties to set
         */
        function AwesomeMessage(properties) {
            if (properties)
                for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
                    if (properties[keys[i]] != null)
                        this[keys[i]] = properties[keys[i]];
        }

        /**
         * AwesomeMessage meesageId.
         * @member {number} meesageId
         * @memberof awesomepackage.AwesomeMessage
         * @instance
         */
        AwesomeMessage.prototype.meesageId = 0;

        /**
         * AwesomeMessage data.
         * @member {Uint8Array} data
         * @memberof awesomepackage.AwesomeMessage
         * @instance
         */
        AwesomeMessage.prototype.data = $util.newBuffer([]);

        /**
         * Creates a new AwesomeMessage instance using the specified properties.
         * @function create
         * @memberof awesomepackage.AwesomeMessage
         * @static
         * @param {awesomepackage.IAwesomeMessage=} [properties] Properties to set
         * @returns {awesomepackage.AwesomeMessage} AwesomeMessage instance
         */
        AwesomeMessage.create = function create(properties) {
            return new AwesomeMessage(properties);
        };

        /**
         * Encodes the specified AwesomeMessage message. Does not implicitly {@link awesomepackage.AwesomeMessage.verify|verify} messages.
         * @function encode
         * @memberof awesomepackage.AwesomeMessage
         * @static
         * @param {awesomepackage.IAwesomeMessage} message AwesomeMessage message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        AwesomeMessage.encode = function encode(message, writer) {
            if (!writer)
                writer = $Writer.create();
            writer.uint32(/* id 1, wireType 0 =*/8).int32(message.meesageId);
            if (message.data != null && message.hasOwnProperty("data"))
                writer.uint32(/* id 2, wireType 2 =*/18).bytes(message.data);
            return writer;
        };

        /**
         * Encodes the specified AwesomeMessage message, length delimited. Does not implicitly {@link awesomepackage.AwesomeMessage.verify|verify} messages.
         * @function encodeDelimited
         * @memberof awesomepackage.AwesomeMessage
         * @static
         * @param {awesomepackage.IAwesomeMessage} message AwesomeMessage message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        AwesomeMessage.encodeDelimited = function encodeDelimited(message, writer) {
            return this.encode(message, writer).ldelim();
        };

        /**
         * Decodes an AwesomeMessage message from the specified reader or buffer.
         * @function decode
         * @memberof awesomepackage.AwesomeMessage
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @param {number} [length] Message length if known beforehand
         * @returns {awesomepackage.AwesomeMessage} AwesomeMessage
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        AwesomeMessage.decode = function decode(reader, length) {
            if (!(reader instanceof $Reader))
                reader = $Reader.create(reader);
            var end = length === undefined ? reader.len : reader.pos + length, message = new $root.awesomepackage.AwesomeMessage();
            while (reader.pos < end) {
                var tag = reader.uint32();
                switch (tag >>> 3) {
                case 1:
                    message.meesageId = reader.int32();
                    break;
                case 2:
                    message.data = reader.bytes();
                    break;
                default:
                    reader.skipType(tag & 7);
                    break;
                }
            }
            if (!message.hasOwnProperty("meesageId"))
                throw $util.ProtocolError("missing required 'meesageId'", { instance: message });
            return message;
        };

        /**
         * Decodes an AwesomeMessage message from the specified reader or buffer, length delimited.
         * @function decodeDelimited
         * @memberof awesomepackage.AwesomeMessage
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @returns {awesomepackage.AwesomeMessage} AwesomeMessage
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        AwesomeMessage.decodeDelimited = function decodeDelimited(reader) {
            if (!(reader instanceof $Reader))
                reader = new $Reader(reader);
            return this.decode(reader, reader.uint32());
        };

        /**
         * Verifies an AwesomeMessage message.
         * @function verify
         * @memberof awesomepackage.AwesomeMessage
         * @static
         * @param {Object.<string,*>} message Plain object to verify
         * @returns {string|null} `null` if valid, otherwise the reason why it is not
         */
        AwesomeMessage.verify = function verify(message) {
            if (typeof message !== "object" || message === null)
                return "object expected";
            if (!$util.isInteger(message.meesageId))
                return "meesageId: integer expected";
            if (message.data != null && message.hasOwnProperty("data"))
                if (!(message.data && typeof message.data.length === "number" || $util.isString(message.data)))
                    return "data: buffer expected";
            return null;
        };

        return AwesomeMessage;
    })();

    /**
     * Result enum.
     * @name awesomepackage.Result
     * @enum {string}
     * @property {number} REGISTER_SUCCESS=0 REGISTER_SUCCESS value
     * @property {number} REGISTER_FAIL=1 REGISTER_FAIL value
     * @property {number} LOGIN_SUCCESS=2 LOGIN_SUCCESS value
     * @property {number} LOGIN_FAIL=3 LOGIN_FAIL value
     */
    awesomepackage.Result = (function() {
        var valuesById = {}, values = Object.create(valuesById);
        values[valuesById[0] = "REGISTER_SUCCESS"] = 0;
        values[valuesById[1] = "REGISTER_FAIL"] = 1;
        values[valuesById[2] = "LOGIN_SUCCESS"] = 2;
        values[valuesById[3] = "LOGIN_FAIL"] = 3;
        return values;
    })();

    awesomepackage.c2sInWaitingRomm = (function() {

        /**
         * Properties of a c2sInWaitingRomm.
         * @memberof awesomepackage
         * @interface Ic2sInWaitingRomm
         * @property {string} LoginName c2sInWaitingRomm LoginName
         */

        /**
         * Constructs a new c2sInWaitingRomm.
         * @memberof awesomepackage
         * @classdesc Represents a c2sInWaitingRomm.
         * @implements Ic2sInWaitingRomm
         * @constructor
         * @param {awesomepackage.Ic2sInWaitingRomm=} [properties] Properties to set
         */
        function c2sInWaitingRomm(properties) {
            if (properties)
                for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
                    if (properties[keys[i]] != null)
                        this[keys[i]] = properties[keys[i]];
        }

        /**
         * c2sInWaitingRomm LoginName.
         * @member {string} LoginName
         * @memberof awesomepackage.c2sInWaitingRomm
         * @instance
         */
        c2sInWaitingRomm.prototype.LoginName = "";

        /**
         * Creates a new c2sInWaitingRomm instance using the specified properties.
         * @function create
         * @memberof awesomepackage.c2sInWaitingRomm
         * @static
         * @param {awesomepackage.Ic2sInWaitingRomm=} [properties] Properties to set
         * @returns {awesomepackage.c2sInWaitingRomm} c2sInWaitingRomm instance
         */
        c2sInWaitingRomm.create = function create(properties) {
            return new c2sInWaitingRomm(properties);
        };

        /**
         * Encodes the specified c2sInWaitingRomm message. Does not implicitly {@link awesomepackage.c2sInWaitingRomm.verify|verify} messages.
         * @function encode
         * @memberof awesomepackage.c2sInWaitingRomm
         * @static
         * @param {awesomepackage.Ic2sInWaitingRomm} message c2sInWaitingRomm message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        c2sInWaitingRomm.encode = function encode(message, writer) {
            if (!writer)
                writer = $Writer.create();
            writer.uint32(/* id 1, wireType 2 =*/10).string(message.LoginName);
            return writer;
        };

        /**
         * Encodes the specified c2sInWaitingRomm message, length delimited. Does not implicitly {@link awesomepackage.c2sInWaitingRomm.verify|verify} messages.
         * @function encodeDelimited
         * @memberof awesomepackage.c2sInWaitingRomm
         * @static
         * @param {awesomepackage.Ic2sInWaitingRomm} message c2sInWaitingRomm message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        c2sInWaitingRomm.encodeDelimited = function encodeDelimited(message, writer) {
            return this.encode(message, writer).ldelim();
        };

        /**
         * Decodes a c2sInWaitingRomm message from the specified reader or buffer.
         * @function decode
         * @memberof awesomepackage.c2sInWaitingRomm
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @param {number} [length] Message length if known beforehand
         * @returns {awesomepackage.c2sInWaitingRomm} c2sInWaitingRomm
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        c2sInWaitingRomm.decode = function decode(reader, length) {
            if (!(reader instanceof $Reader))
                reader = $Reader.create(reader);
            var end = length === undefined ? reader.len : reader.pos + length, message = new $root.awesomepackage.c2sInWaitingRomm();
            while (reader.pos < end) {
                var tag = reader.uint32();
                switch (tag >>> 3) {
                case 1:
                    message.LoginName = reader.string();
                    break;
                default:
                    reader.skipType(tag & 7);
                    break;
                }
            }
            if (!message.hasOwnProperty("LoginName"))
                throw $util.ProtocolError("missing required 'LoginName'", { instance: message });
            return message;
        };

        /**
         * Decodes a c2sInWaitingRomm message from the specified reader or buffer, length delimited.
         * @function decodeDelimited
         * @memberof awesomepackage.c2sInWaitingRomm
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @returns {awesomepackage.c2sInWaitingRomm} c2sInWaitingRomm
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        c2sInWaitingRomm.decodeDelimited = function decodeDelimited(reader) {
            if (!(reader instanceof $Reader))
                reader = new $Reader(reader);
            return this.decode(reader, reader.uint32());
        };

        /**
         * Verifies a c2sInWaitingRomm message.
         * @function verify
         * @memberof awesomepackage.c2sInWaitingRomm
         * @static
         * @param {Object.<string,*>} message Plain object to verify
         * @returns {string|null} `null` if valid, otherwise the reason why it is not
         */
        c2sInWaitingRomm.verify = function verify(message) {
            if (typeof message !== "object" || message === null)
                return "object expected";
            if (!$util.isString(message.LoginName))
                return "LoginName: string expected";
            return null;
        };

        return c2sInWaitingRomm;
    })();

    awesomepackage.s2csInWaitingRomm = (function() {

        /**
         * Properties of a s2csInWaitingRomm.
         * @memberof awesomepackage
         * @interface Is2csInWaitingRomm
         * @property {boolean} isSucess s2csInWaitingRomm isSucess
         * @property {number} userId s2csInWaitingRomm userId
         * @property {number} roomId s2csInWaitingRomm roomId
         */

        /**
         * Constructs a new s2csInWaitingRomm.
         * @memberof awesomepackage
         * @classdesc Represents a s2csInWaitingRomm.
         * @implements Is2csInWaitingRomm
         * @constructor
         * @param {awesomepackage.Is2csInWaitingRomm=} [properties] Properties to set
         */
        function s2csInWaitingRomm(properties) {
            if (properties)
                for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
                    if (properties[keys[i]] != null)
                        this[keys[i]] = properties[keys[i]];
        }

        /**
         * s2csInWaitingRomm isSucess.
         * @member {boolean} isSucess
         * @memberof awesomepackage.s2csInWaitingRomm
         * @instance
         */
        s2csInWaitingRomm.prototype.isSucess = false;

        /**
         * s2csInWaitingRomm userId.
         * @member {number} userId
         * @memberof awesomepackage.s2csInWaitingRomm
         * @instance
         */
        s2csInWaitingRomm.prototype.userId = 0;

        /**
         * s2csInWaitingRomm roomId.
         * @member {number} roomId
         * @memberof awesomepackage.s2csInWaitingRomm
         * @instance
         */
        s2csInWaitingRomm.prototype.roomId = 0;

        /**
         * Creates a new s2csInWaitingRomm instance using the specified properties.
         * @function create
         * @memberof awesomepackage.s2csInWaitingRomm
         * @static
         * @param {awesomepackage.Is2csInWaitingRomm=} [properties] Properties to set
         * @returns {awesomepackage.s2csInWaitingRomm} s2csInWaitingRomm instance
         */
        s2csInWaitingRomm.create = function create(properties) {
            return new s2csInWaitingRomm(properties);
        };

        /**
         * Encodes the specified s2csInWaitingRomm message. Does not implicitly {@link awesomepackage.s2csInWaitingRomm.verify|verify} messages.
         * @function encode
         * @memberof awesomepackage.s2csInWaitingRomm
         * @static
         * @param {awesomepackage.Is2csInWaitingRomm} message s2csInWaitingRomm message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        s2csInWaitingRomm.encode = function encode(message, writer) {
            if (!writer)
                writer = $Writer.create();
            writer.uint32(/* id 1, wireType 0 =*/8).bool(message.isSucess);
            writer.uint32(/* id 2, wireType 0 =*/16).int32(message.userId);
            writer.uint32(/* id 3, wireType 0 =*/24).int32(message.roomId);
            return writer;
        };

        /**
         * Encodes the specified s2csInWaitingRomm message, length delimited. Does not implicitly {@link awesomepackage.s2csInWaitingRomm.verify|verify} messages.
         * @function encodeDelimited
         * @memberof awesomepackage.s2csInWaitingRomm
         * @static
         * @param {awesomepackage.Is2csInWaitingRomm} message s2csInWaitingRomm message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        s2csInWaitingRomm.encodeDelimited = function encodeDelimited(message, writer) {
            return this.encode(message, writer).ldelim();
        };

        /**
         * Decodes a s2csInWaitingRomm message from the specified reader or buffer.
         * @function decode
         * @memberof awesomepackage.s2csInWaitingRomm
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @param {number} [length] Message length if known beforehand
         * @returns {awesomepackage.s2csInWaitingRomm} s2csInWaitingRomm
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        s2csInWaitingRomm.decode = function decode(reader, length) {
            if (!(reader instanceof $Reader))
                reader = $Reader.create(reader);
            var end = length === undefined ? reader.len : reader.pos + length, message = new $root.awesomepackage.s2csInWaitingRomm();
            while (reader.pos < end) {
                var tag = reader.uint32();
                switch (tag >>> 3) {
                case 1:
                    message.isSucess = reader.bool();
                    break;
                case 2:
                    message.userId = reader.int32();
                    break;
                case 3:
                    message.roomId = reader.int32();
                    break;
                default:
                    reader.skipType(tag & 7);
                    break;
                }
            }
            if (!message.hasOwnProperty("isSucess"))
                throw $util.ProtocolError("missing required 'isSucess'", { instance: message });
            if (!message.hasOwnProperty("userId"))
                throw $util.ProtocolError("missing required 'userId'", { instance: message });
            if (!message.hasOwnProperty("roomId"))
                throw $util.ProtocolError("missing required 'roomId'", { instance: message });
            return message;
        };

        /**
         * Decodes a s2csInWaitingRomm message from the specified reader or buffer, length delimited.
         * @function decodeDelimited
         * @memberof awesomepackage.s2csInWaitingRomm
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @returns {awesomepackage.s2csInWaitingRomm} s2csInWaitingRomm
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        s2csInWaitingRomm.decodeDelimited = function decodeDelimited(reader) {
            if (!(reader instanceof $Reader))
                reader = new $Reader(reader);
            return this.decode(reader, reader.uint32());
        };

        /**
         * Verifies a s2csInWaitingRomm message.
         * @function verify
         * @memberof awesomepackage.s2csInWaitingRomm
         * @static
         * @param {Object.<string,*>} message Plain object to verify
         * @returns {string|null} `null` if valid, otherwise the reason why it is not
         */
        s2csInWaitingRomm.verify = function verify(message) {
            if (typeof message !== "object" || message === null)
                return "object expected";
            if (typeof message.isSucess !== "boolean")
                return "isSucess: boolean expected";
            if (!$util.isInteger(message.userId))
                return "userId: integer expected";
            if (!$util.isInteger(message.roomId))
                return "roomId: integer expected";
            return null;
        };

        return s2csInWaitingRomm;
    })();

    awesomepackage.point = (function() {

        /**
         * Properties of a point.
         * @memberof awesomepackage
         * @interface Ipoint
         * @property {number} x point x
         * @property {number} y point y
         */

        /**
         * Constructs a new point.
         * @memberof awesomepackage
         * @classdesc Represents a point.
         * @implements Ipoint
         * @constructor
         * @param {awesomepackage.Ipoint=} [properties] Properties to set
         */
        function point(properties) {
            if (properties)
                for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
                    if (properties[keys[i]] != null)
                        this[keys[i]] = properties[keys[i]];
        }

        /**
         * point x.
         * @member {number} x
         * @memberof awesomepackage.point
         * @instance
         */
        point.prototype.x = 0;

        /**
         * point y.
         * @member {number} y
         * @memberof awesomepackage.point
         * @instance
         */
        point.prototype.y = 0;

        /**
         * Creates a new point instance using the specified properties.
         * @function create
         * @memberof awesomepackage.point
         * @static
         * @param {awesomepackage.Ipoint=} [properties] Properties to set
         * @returns {awesomepackage.point} point instance
         */
        point.create = function create(properties) {
            return new point(properties);
        };

        /**
         * Encodes the specified point message. Does not implicitly {@link awesomepackage.point.verify|verify} messages.
         * @function encode
         * @memberof awesomepackage.point
         * @static
         * @param {awesomepackage.Ipoint} message point message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        point.encode = function encode(message, writer) {
            if (!writer)
                writer = $Writer.create();
            writer.uint32(/* id 1, wireType 0 =*/8).int32(message.x);
            writer.uint32(/* id 2, wireType 0 =*/16).int32(message.y);
            return writer;
        };

        /**
         * Encodes the specified point message, length delimited. Does not implicitly {@link awesomepackage.point.verify|verify} messages.
         * @function encodeDelimited
         * @memberof awesomepackage.point
         * @static
         * @param {awesomepackage.Ipoint} message point message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        point.encodeDelimited = function encodeDelimited(message, writer) {
            return this.encode(message, writer).ldelim();
        };

        /**
         * Decodes a point message from the specified reader or buffer.
         * @function decode
         * @memberof awesomepackage.point
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @param {number} [length] Message length if known beforehand
         * @returns {awesomepackage.point} point
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        point.decode = function decode(reader, length) {
            if (!(reader instanceof $Reader))
                reader = $Reader.create(reader);
            var end = length === undefined ? reader.len : reader.pos + length, message = new $root.awesomepackage.point();
            while (reader.pos < end) {
                var tag = reader.uint32();
                switch (tag >>> 3) {
                case 1:
                    message.x = reader.int32();
                    break;
                case 2:
                    message.y = reader.int32();
                    break;
                default:
                    reader.skipType(tag & 7);
                    break;
                }
            }
            if (!message.hasOwnProperty("x"))
                throw $util.ProtocolError("missing required 'x'", { instance: message });
            if (!message.hasOwnProperty("y"))
                throw $util.ProtocolError("missing required 'y'", { instance: message });
            return message;
        };

        /**
         * Decodes a point message from the specified reader or buffer, length delimited.
         * @function decodeDelimited
         * @memberof awesomepackage.point
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @returns {awesomepackage.point} point
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        point.decodeDelimited = function decodeDelimited(reader) {
            if (!(reader instanceof $Reader))
                reader = new $Reader(reader);
            return this.decode(reader, reader.uint32());
        };

        /**
         * Verifies a point message.
         * @function verify
         * @memberof awesomepackage.point
         * @static
         * @param {Object.<string,*>} message Plain object to verify
         * @returns {string|null} `null` if valid, otherwise the reason why it is not
         */
        point.verify = function verify(message) {
            if (typeof message !== "object" || message === null)
                return "object expected";
            if (!$util.isInteger(message.x))
                return "x: integer expected";
            if (!$util.isInteger(message.y))
                return "y: integer expected";
            return null;
        };

        return point;
    })();

    awesomepackage.objInfo = (function() {

        /**
         * Properties of an objInfo.
         * @memberof awesomepackage
         * @interface IobjInfo
         * @property {number} objType objInfo objType
         * @property {awesomepackage.Ipoint} position objInfo position
         * @property {Uint8Array|null} [extraData] objInfo extraData
         */

        /**
         * Constructs a new objInfo.
         * @memberof awesomepackage
         * @classdesc Represents an objInfo.
         * @implements IobjInfo
         * @constructor
         * @param {awesomepackage.IobjInfo=} [properties] Properties to set
         */
        function objInfo(properties) {
            if (properties)
                for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
                    if (properties[keys[i]] != null)
                        this[keys[i]] = properties[keys[i]];
        }

        /**
         * objInfo objType.
         * @member {number} objType
         * @memberof awesomepackage.objInfo
         * @instance
         */
        objInfo.prototype.objType = 0;

        /**
         * objInfo position.
         * @member {awesomepackage.Ipoint} position
         * @memberof awesomepackage.objInfo
         * @instance
         */
        objInfo.prototype.position = null;

        /**
         * objInfo extraData.
         * @member {Uint8Array} extraData
         * @memberof awesomepackage.objInfo
         * @instance
         */
        objInfo.prototype.extraData = $util.newBuffer([]);

        /**
         * Creates a new objInfo instance using the specified properties.
         * @function create
         * @memberof awesomepackage.objInfo
         * @static
         * @param {awesomepackage.IobjInfo=} [properties] Properties to set
         * @returns {awesomepackage.objInfo} objInfo instance
         */
        objInfo.create = function create(properties) {
            return new objInfo(properties);
        };

        /**
         * Encodes the specified objInfo message. Does not implicitly {@link awesomepackage.objInfo.verify|verify} messages.
         * @function encode
         * @memberof awesomepackage.objInfo
         * @static
         * @param {awesomepackage.IobjInfo} message objInfo message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        objInfo.encode = function encode(message, writer) {
            if (!writer)
                writer = $Writer.create();
            writer.uint32(/* id 1, wireType 0 =*/8).int32(message.objType);
            $root.awesomepackage.point.encode(message.position, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();
            if (message.extraData != null && message.hasOwnProperty("extraData"))
                writer.uint32(/* id 3, wireType 2 =*/26).bytes(message.extraData);
            return writer;
        };

        /**
         * Encodes the specified objInfo message, length delimited. Does not implicitly {@link awesomepackage.objInfo.verify|verify} messages.
         * @function encodeDelimited
         * @memberof awesomepackage.objInfo
         * @static
         * @param {awesomepackage.IobjInfo} message objInfo message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        objInfo.encodeDelimited = function encodeDelimited(message, writer) {
            return this.encode(message, writer).ldelim();
        };

        /**
         * Decodes an objInfo message from the specified reader or buffer.
         * @function decode
         * @memberof awesomepackage.objInfo
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @param {number} [length] Message length if known beforehand
         * @returns {awesomepackage.objInfo} objInfo
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        objInfo.decode = function decode(reader, length) {
            if (!(reader instanceof $Reader))
                reader = $Reader.create(reader);
            var end = length === undefined ? reader.len : reader.pos + length, message = new $root.awesomepackage.objInfo();
            while (reader.pos < end) {
                var tag = reader.uint32();
                switch (tag >>> 3) {
                case 1:
                    message.objType = reader.int32();
                    break;
                case 2:
                    message.position = $root.awesomepackage.point.decode(reader, reader.uint32());
                    break;
                case 3:
                    message.extraData = reader.bytes();
                    break;
                default:
                    reader.skipType(tag & 7);
                    break;
                }
            }
            if (!message.hasOwnProperty("objType"))
                throw $util.ProtocolError("missing required 'objType'", { instance: message });
            if (!message.hasOwnProperty("position"))
                throw $util.ProtocolError("missing required 'position'", { instance: message });
            return message;
        };

        /**
         * Decodes an objInfo message from the specified reader or buffer, length delimited.
         * @function decodeDelimited
         * @memberof awesomepackage.objInfo
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @returns {awesomepackage.objInfo} objInfo
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        objInfo.decodeDelimited = function decodeDelimited(reader) {
            if (!(reader instanceof $Reader))
                reader = new $Reader(reader);
            return this.decode(reader, reader.uint32());
        };

        /**
         * Verifies an objInfo message.
         * @function verify
         * @memberof awesomepackage.objInfo
         * @static
         * @param {Object.<string,*>} message Plain object to verify
         * @returns {string|null} `null` if valid, otherwise the reason why it is not
         */
        objInfo.verify = function verify(message) {
            if (typeof message !== "object" || message === null)
                return "object expected";
            if (!$util.isInteger(message.objType))
                return "objType: integer expected";
            {
                var error = $root.awesomepackage.point.verify(message.position);
                if (error)
                    return "position." + error;
            }
            if (message.extraData != null && message.hasOwnProperty("extraData"))
                if (!(message.extraData && typeof message.extraData.length === "number" || $util.isString(message.extraData)))
                    return "extraData: buffer expected";
            return null;
        };

        return objInfo;
    })();

    awesomepackage.roomUserInfo = (function() {

        /**
         * Properties of a roomUserInfo.
         * @memberof awesomepackage
         * @interface IroomUserInfo
         * @property {number} userId roomUserInfo userId
         * @property {boolean} isAttacke roomUserInfo isAttacke
         * @property {boolean} isUp roomUserInfo isUp
         * @property {number} blood roomUserInfo blood
         */

        /**
         * Constructs a new roomUserInfo.
         * @memberof awesomepackage
         * @classdesc Represents a roomUserInfo.
         * @implements IroomUserInfo
         * @constructor
         * @param {awesomepackage.IroomUserInfo=} [properties] Properties to set
         */
        function roomUserInfo(properties) {
            if (properties)
                for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
                    if (properties[keys[i]] != null)
                        this[keys[i]] = properties[keys[i]];
        }

        /**
         * roomUserInfo userId.
         * @member {number} userId
         * @memberof awesomepackage.roomUserInfo
         * @instance
         */
        roomUserInfo.prototype.userId = 0;

        /**
         * roomUserInfo isAttacke.
         * @member {boolean} isAttacke
         * @memberof awesomepackage.roomUserInfo
         * @instance
         */
        roomUserInfo.prototype.isAttacke = false;

        /**
         * roomUserInfo isUp.
         * @member {boolean} isUp
         * @memberof awesomepackage.roomUserInfo
         * @instance
         */
        roomUserInfo.prototype.isUp = false;

        /**
         * roomUserInfo blood.
         * @member {number} blood
         * @memberof awesomepackage.roomUserInfo
         * @instance
         */
        roomUserInfo.prototype.blood = 0;

        /**
         * Creates a new roomUserInfo instance using the specified properties.
         * @function create
         * @memberof awesomepackage.roomUserInfo
         * @static
         * @param {awesomepackage.IroomUserInfo=} [properties] Properties to set
         * @returns {awesomepackage.roomUserInfo} roomUserInfo instance
         */
        roomUserInfo.create = function create(properties) {
            return new roomUserInfo(properties);
        };

        /**
         * Encodes the specified roomUserInfo message. Does not implicitly {@link awesomepackage.roomUserInfo.verify|verify} messages.
         * @function encode
         * @memberof awesomepackage.roomUserInfo
         * @static
         * @param {awesomepackage.IroomUserInfo} message roomUserInfo message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        roomUserInfo.encode = function encode(message, writer) {
            if (!writer)
                writer = $Writer.create();
            writer.uint32(/* id 1, wireType 0 =*/8).int32(message.userId);
            writer.uint32(/* id 2, wireType 0 =*/16).bool(message.isAttacke);
            writer.uint32(/* id 3, wireType 0 =*/24).bool(message.isUp);
            writer.uint32(/* id 4, wireType 0 =*/32).int32(message.blood);
            return writer;
        };

        /**
         * Encodes the specified roomUserInfo message, length delimited. Does not implicitly {@link awesomepackage.roomUserInfo.verify|verify} messages.
         * @function encodeDelimited
         * @memberof awesomepackage.roomUserInfo
         * @static
         * @param {awesomepackage.IroomUserInfo} message roomUserInfo message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        roomUserInfo.encodeDelimited = function encodeDelimited(message, writer) {
            return this.encode(message, writer).ldelim();
        };

        /**
         * Decodes a roomUserInfo message from the specified reader or buffer.
         * @function decode
         * @memberof awesomepackage.roomUserInfo
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @param {number} [length] Message length if known beforehand
         * @returns {awesomepackage.roomUserInfo} roomUserInfo
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        roomUserInfo.decode = function decode(reader, length) {
            if (!(reader instanceof $Reader))
                reader = $Reader.create(reader);
            var end = length === undefined ? reader.len : reader.pos + length, message = new $root.awesomepackage.roomUserInfo();
            while (reader.pos < end) {
                var tag = reader.uint32();
                switch (tag >>> 3) {
                case 1:
                    message.userId = reader.int32();
                    break;
                case 2:
                    message.isAttacke = reader.bool();
                    break;
                case 3:
                    message.isUp = reader.bool();
                    break;
                case 4:
                    message.blood = reader.int32();
                    break;
                default:
                    reader.skipType(tag & 7);
                    break;
                }
            }
            if (!message.hasOwnProperty("userId"))
                throw $util.ProtocolError("missing required 'userId'", { instance: message });
            if (!message.hasOwnProperty("isAttacke"))
                throw $util.ProtocolError("missing required 'isAttacke'", { instance: message });
            if (!message.hasOwnProperty("isUp"))
                throw $util.ProtocolError("missing required 'isUp'", { instance: message });
            if (!message.hasOwnProperty("blood"))
                throw $util.ProtocolError("missing required 'blood'", { instance: message });
            return message;
        };

        /**
         * Decodes a roomUserInfo message from the specified reader or buffer, length delimited.
         * @function decodeDelimited
         * @memberof awesomepackage.roomUserInfo
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @returns {awesomepackage.roomUserInfo} roomUserInfo
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        roomUserInfo.decodeDelimited = function decodeDelimited(reader) {
            if (!(reader instanceof $Reader))
                reader = new $Reader(reader);
            return this.decode(reader, reader.uint32());
        };

        /**
         * Verifies a roomUserInfo message.
         * @function verify
         * @memberof awesomepackage.roomUserInfo
         * @static
         * @param {Object.<string,*>} message Plain object to verify
         * @returns {string|null} `null` if valid, otherwise the reason why it is not
         */
        roomUserInfo.verify = function verify(message) {
            if (typeof message !== "object" || message === null)
                return "object expected";
            if (!$util.isInteger(message.userId))
                return "userId: integer expected";
            if (typeof message.isAttacke !== "boolean")
                return "isAttacke: boolean expected";
            if (typeof message.isUp !== "boolean")
                return "isUp: boolean expected";
            if (!$util.isInteger(message.blood))
                return "blood: integer expected";
            return null;
        };

        return roomUserInfo;
    })();

    awesomepackage.s2cRoomInfo = (function() {

        /**
         * Properties of a s2cRoomInfo.
         * @memberof awesomepackage
         * @interface Is2cRoomInfo
         * @property {Array.<awesomepackage.IroomUserInfo>|null} [allUserInfo] s2cRoomInfo allUserInfo
         * @property {Array.<awesomepackage.IobjInfo>|null} [allobj] s2cRoomInfo allobj
         * @property {number} round s2cRoomInfo round
         */

        /**
         * Constructs a new s2cRoomInfo.
         * @memberof awesomepackage
         * @classdesc Represents a s2cRoomInfo.
         * @implements Is2cRoomInfo
         * @constructor
         * @param {awesomepackage.Is2cRoomInfo=} [properties] Properties to set
         */
        function s2cRoomInfo(properties) {
            this.allUserInfo = [];
            this.allobj = [];
            if (properties)
                for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
                    if (properties[keys[i]] != null)
                        this[keys[i]] = properties[keys[i]];
        }

        /**
         * s2cRoomInfo allUserInfo.
         * @member {Array.<awesomepackage.IroomUserInfo>} allUserInfo
         * @memberof awesomepackage.s2cRoomInfo
         * @instance
         */
        s2cRoomInfo.prototype.allUserInfo = $util.emptyArray;

        /**
         * s2cRoomInfo allobj.
         * @member {Array.<awesomepackage.IobjInfo>} allobj
         * @memberof awesomepackage.s2cRoomInfo
         * @instance
         */
        s2cRoomInfo.prototype.allobj = $util.emptyArray;

        /**
         * s2cRoomInfo round.
         * @member {number} round
         * @memberof awesomepackage.s2cRoomInfo
         * @instance
         */
        s2cRoomInfo.prototype.round = 0;

        /**
         * Creates a new s2cRoomInfo instance using the specified properties.
         * @function create
         * @memberof awesomepackage.s2cRoomInfo
         * @static
         * @param {awesomepackage.Is2cRoomInfo=} [properties] Properties to set
         * @returns {awesomepackage.s2cRoomInfo} s2cRoomInfo instance
         */
        s2cRoomInfo.create = function create(properties) {
            return new s2cRoomInfo(properties);
        };

        /**
         * Encodes the specified s2cRoomInfo message. Does not implicitly {@link awesomepackage.s2cRoomInfo.verify|verify} messages.
         * @function encode
         * @memberof awesomepackage.s2cRoomInfo
         * @static
         * @param {awesomepackage.Is2cRoomInfo} message s2cRoomInfo message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        s2cRoomInfo.encode = function encode(message, writer) {
            if (!writer)
                writer = $Writer.create();
            if (message.allUserInfo != null && message.allUserInfo.length)
                for (var i = 0; i < message.allUserInfo.length; ++i)
                    $root.awesomepackage.roomUserInfo.encode(message.allUserInfo[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();
            if (message.allobj != null && message.allobj.length)
                for (var i = 0; i < message.allobj.length; ++i)
                    $root.awesomepackage.objInfo.encode(message.allobj[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();
            writer.uint32(/* id 3, wireType 0 =*/24).int32(message.round);
            return writer;
        };

        /**
         * Encodes the specified s2cRoomInfo message, length delimited. Does not implicitly {@link awesomepackage.s2cRoomInfo.verify|verify} messages.
         * @function encodeDelimited
         * @memberof awesomepackage.s2cRoomInfo
         * @static
         * @param {awesomepackage.Is2cRoomInfo} message s2cRoomInfo message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        s2cRoomInfo.encodeDelimited = function encodeDelimited(message, writer) {
            return this.encode(message, writer).ldelim();
        };

        /**
         * Decodes a s2cRoomInfo message from the specified reader or buffer.
         * @function decode
         * @memberof awesomepackage.s2cRoomInfo
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @param {number} [length] Message length if known beforehand
         * @returns {awesomepackage.s2cRoomInfo} s2cRoomInfo
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        s2cRoomInfo.decode = function decode(reader, length) {
            if (!(reader instanceof $Reader))
                reader = $Reader.create(reader);
            var end = length === undefined ? reader.len : reader.pos + length, message = new $root.awesomepackage.s2cRoomInfo();
            while (reader.pos < end) {
                var tag = reader.uint32();
                switch (tag >>> 3) {
                case 1:
                    if (!(message.allUserInfo && message.allUserInfo.length))
                        message.allUserInfo = [];
                    message.allUserInfo.push($root.awesomepackage.roomUserInfo.decode(reader, reader.uint32()));
                    break;
                case 2:
                    if (!(message.allobj && message.allobj.length))
                        message.allobj = [];
                    message.allobj.push($root.awesomepackage.objInfo.decode(reader, reader.uint32()));
                    break;
                case 3:
                    message.round = reader.int32();
                    break;
                default:
                    reader.skipType(tag & 7);
                    break;
                }
            }
            if (!message.hasOwnProperty("round"))
                throw $util.ProtocolError("missing required 'round'", { instance: message });
            return message;
        };

        /**
         * Decodes a s2cRoomInfo message from the specified reader or buffer, length delimited.
         * @function decodeDelimited
         * @memberof awesomepackage.s2cRoomInfo
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @returns {awesomepackage.s2cRoomInfo} s2cRoomInfo
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        s2cRoomInfo.decodeDelimited = function decodeDelimited(reader) {
            if (!(reader instanceof $Reader))
                reader = new $Reader(reader);
            return this.decode(reader, reader.uint32());
        };

        /**
         * Verifies a s2cRoomInfo message.
         * @function verify
         * @memberof awesomepackage.s2cRoomInfo
         * @static
         * @param {Object.<string,*>} message Plain object to verify
         * @returns {string|null} `null` if valid, otherwise the reason why it is not
         */
        s2cRoomInfo.verify = function verify(message) {
            if (typeof message !== "object" || message === null)
                return "object expected";
            if (message.allUserInfo != null && message.hasOwnProperty("allUserInfo")) {
                if (!Array.isArray(message.allUserInfo))
                    return "allUserInfo: array expected";
                for (var i = 0; i < message.allUserInfo.length; ++i) {
                    var error = $root.awesomepackage.roomUserInfo.verify(message.allUserInfo[i]);
                    if (error)
                        return "allUserInfo." + error;
                }
            }
            if (message.allobj != null && message.hasOwnProperty("allobj")) {
                if (!Array.isArray(message.allobj))
                    return "allobj: array expected";
                for (var i = 0; i < message.allobj.length; ++i) {
                    var error = $root.awesomepackage.objInfo.verify(message.allobj[i]);
                    if (error)
                        return "allobj." + error;
                }
            }
            if (!$util.isInteger(message.round))
                return "round: integer expected";
            return null;
        };

        return s2cRoomInfo;
    })();

    awesomepackage.UserResult = (function() {

        /**
         * Properties of a UserResult.
         * @memberof awesomepackage
         * @interface IUserResult
         * @property {awesomepackage.Result|null} [RetResult] UserResult RetResult
         * @property {string|null} [ErrorInfo] UserResult ErrorInfo
         */

        /**
         * Constructs a new UserResult.
         * @memberof awesomepackage
         * @classdesc Represents a UserResult.
         * @implements IUserResult
         * @constructor
         * @param {awesomepackage.IUserResult=} [properties] Properties to set
         */
        function UserResult(properties) {
            if (properties)
                for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
                    if (properties[keys[i]] != null)
                        this[keys[i]] = properties[keys[i]];
        }

        /**
         * UserResult RetResult.
         * @member {awesomepackage.Result} RetResult
         * @memberof awesomepackage.UserResult
         * @instance
         */
        UserResult.prototype.RetResult = 0;

        /**
         * UserResult ErrorInfo.
         * @member {string} ErrorInfo
         * @memberof awesomepackage.UserResult
         * @instance
         */
        UserResult.prototype.ErrorInfo = "";

        /**
         * Creates a new UserResult instance using the specified properties.
         * @function create
         * @memberof awesomepackage.UserResult
         * @static
         * @param {awesomepackage.IUserResult=} [properties] Properties to set
         * @returns {awesomepackage.UserResult} UserResult instance
         */
        UserResult.create = function create(properties) {
            return new UserResult(properties);
        };

        /**
         * Encodes the specified UserResult message. Does not implicitly {@link awesomepackage.UserResult.verify|verify} messages.
         * @function encode
         * @memberof awesomepackage.UserResult
         * @static
         * @param {awesomepackage.IUserResult} message UserResult message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        UserResult.encode = function encode(message, writer) {
            if (!writer)
                writer = $Writer.create();
            if (message.RetResult != null && message.hasOwnProperty("RetResult"))
                writer.uint32(/* id 1, wireType 0 =*/8).int32(message.RetResult);
            if (message.ErrorInfo != null && message.hasOwnProperty("ErrorInfo"))
                writer.uint32(/* id 2, wireType 2 =*/18).string(message.ErrorInfo);
            return writer;
        };

        /**
         * Encodes the specified UserResult message, length delimited. Does not implicitly {@link awesomepackage.UserResult.verify|verify} messages.
         * @function encodeDelimited
         * @memberof awesomepackage.UserResult
         * @static
         * @param {awesomepackage.IUserResult} message UserResult message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        UserResult.encodeDelimited = function encodeDelimited(message, writer) {
            return this.encode(message, writer).ldelim();
        };

        /**
         * Decodes a UserResult message from the specified reader or buffer.
         * @function decode
         * @memberof awesomepackage.UserResult
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @param {number} [length] Message length if known beforehand
         * @returns {awesomepackage.UserResult} UserResult
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        UserResult.decode = function decode(reader, length) {
            if (!(reader instanceof $Reader))
                reader = $Reader.create(reader);
            var end = length === undefined ? reader.len : reader.pos + length, message = new $root.awesomepackage.UserResult();
            while (reader.pos < end) {
                var tag = reader.uint32();
                switch (tag >>> 3) {
                case 1:
                    message.RetResult = reader.int32();
                    break;
                case 2:
                    message.ErrorInfo = reader.string();
                    break;
                default:
                    reader.skipType(tag & 7);
                    break;
                }
            }
            return message;
        };

        /**
         * Decodes a UserResult message from the specified reader or buffer, length delimited.
         * @function decodeDelimited
         * @memberof awesomepackage.UserResult
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @returns {awesomepackage.UserResult} UserResult
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        UserResult.decodeDelimited = function decodeDelimited(reader) {
            if (!(reader instanceof $Reader))
                reader = new $Reader(reader);
            return this.decode(reader, reader.uint32());
        };

        /**
         * Verifies a UserResult message.
         * @function verify
         * @memberof awesomepackage.UserResult
         * @static
         * @param {Object.<string,*>} message Plain object to verify
         * @returns {string|null} `null` if valid, otherwise the reason why it is not
         */
        UserResult.verify = function verify(message) {
            if (typeof message !== "object" || message === null)
                return "object expected";
            if (message.RetResult != null && message.hasOwnProperty("RetResult"))
                switch (message.RetResult) {
                default:
                    return "RetResult: enum value expected";
                case 0:
                case 1:
                case 2:
                case 3:
                    break;
                }
            if (message.ErrorInfo != null && message.hasOwnProperty("ErrorInfo"))
                if (!$util.isString(message.ErrorInfo))
                    return "ErrorInfo: string expected";
            return null;
        };

        return UserResult;
    })();

    awesomepackage.UserST = (function() {

        /**
         * Properties of a UserST.
         * @memberof awesomepackage
         * @interface IUserST
         * @property {string|null} [UID] UserST UID
         * @property {string|null} [ServerID] UserST ServerID
         * @property {string|null} [RoleUID] UserST RoleUID
         * @property {string|null} [RoleName] UserST RoleName
         * @property {string|null} [RoleLev] UserST RoleLev
         * @property {string|null} [Coin] UserST Coin
         */

        /**
         * Constructs a new UserST.
         * @memberof awesomepackage
         * @classdesc Represents a UserST.
         * @implements IUserST
         * @constructor
         * @param {awesomepackage.IUserST=} [properties] Properties to set
         */
        function UserST(properties) {
            if (properties)
                for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
                    if (properties[keys[i]] != null)
                        this[keys[i]] = properties[keys[i]];
        }

        /**
         * UserST UID.
         * @member {string} UID
         * @memberof awesomepackage.UserST
         * @instance
         */
        UserST.prototype.UID = "";

        /**
         * UserST ServerID.
         * @member {string} ServerID
         * @memberof awesomepackage.UserST
         * @instance
         */
        UserST.prototype.ServerID = "";

        /**
         * UserST RoleUID.
         * @member {string} RoleUID
         * @memberof awesomepackage.UserST
         * @instance
         */
        UserST.prototype.RoleUID = "";

        /**
         * UserST RoleName.
         * @member {string} RoleName
         * @memberof awesomepackage.UserST
         * @instance
         */
        UserST.prototype.RoleName = "";

        /**
         * UserST RoleLev.
         * @member {string} RoleLev
         * @memberof awesomepackage.UserST
         * @instance
         */
        UserST.prototype.RoleLev = "";

        /**
         * UserST Coin.
         * @member {string} Coin
         * @memberof awesomepackage.UserST
         * @instance
         */
        UserST.prototype.Coin = "";

        /**
         * Creates a new UserST instance using the specified properties.
         * @function create
         * @memberof awesomepackage.UserST
         * @static
         * @param {awesomepackage.IUserST=} [properties] Properties to set
         * @returns {awesomepackage.UserST} UserST instance
         */
        UserST.create = function create(properties) {
            return new UserST(properties);
        };

        /**
         * Encodes the specified UserST message. Does not implicitly {@link awesomepackage.UserST.verify|verify} messages.
         * @function encode
         * @memberof awesomepackage.UserST
         * @static
         * @param {awesomepackage.IUserST} message UserST message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        UserST.encode = function encode(message, writer) {
            if (!writer)
                writer = $Writer.create();
            if (message.UID != null && message.hasOwnProperty("UID"))
                writer.uint32(/* id 1, wireType 2 =*/10).string(message.UID);
            if (message.ServerID != null && message.hasOwnProperty("ServerID"))
                writer.uint32(/* id 2, wireType 2 =*/18).string(message.ServerID);
            if (message.RoleUID != null && message.hasOwnProperty("RoleUID"))
                writer.uint32(/* id 3, wireType 2 =*/26).string(message.RoleUID);
            if (message.RoleName != null && message.hasOwnProperty("RoleName"))
                writer.uint32(/* id 4, wireType 2 =*/34).string(message.RoleName);
            if (message.RoleLev != null && message.hasOwnProperty("RoleLev"))
                writer.uint32(/* id 5, wireType 2 =*/42).string(message.RoleLev);
            if (message.Coin != null && message.hasOwnProperty("Coin"))
                writer.uint32(/* id 6, wireType 2 =*/50).string(message.Coin);
            return writer;
        };

        /**
         * Encodes the specified UserST message, length delimited. Does not implicitly {@link awesomepackage.UserST.verify|verify} messages.
         * @function encodeDelimited
         * @memberof awesomepackage.UserST
         * @static
         * @param {awesomepackage.IUserST} message UserST message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        UserST.encodeDelimited = function encodeDelimited(message, writer) {
            return this.encode(message, writer).ldelim();
        };

        /**
         * Decodes a UserST message from the specified reader or buffer.
         * @function decode
         * @memberof awesomepackage.UserST
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @param {number} [length] Message length if known beforehand
         * @returns {awesomepackage.UserST} UserST
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        UserST.decode = function decode(reader, length) {
            if (!(reader instanceof $Reader))
                reader = $Reader.create(reader);
            var end = length === undefined ? reader.len : reader.pos + length, message = new $root.awesomepackage.UserST();
            while (reader.pos < end) {
                var tag = reader.uint32();
                switch (tag >>> 3) {
                case 1:
                    message.UID = reader.string();
                    break;
                case 2:
                    message.ServerID = reader.string();
                    break;
                case 3:
                    message.RoleUID = reader.string();
                    break;
                case 4:
                    message.RoleName = reader.string();
                    break;
                case 5:
                    message.RoleLev = reader.string();
                    break;
                case 6:
                    message.Coin = reader.string();
                    break;
                default:
                    reader.skipType(tag & 7);
                    break;
                }
            }
            return message;
        };

        /**
         * Decodes a UserST message from the specified reader or buffer, length delimited.
         * @function decodeDelimited
         * @memberof awesomepackage.UserST
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @returns {awesomepackage.UserST} UserST
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        UserST.decodeDelimited = function decodeDelimited(reader) {
            if (!(reader instanceof $Reader))
                reader = new $Reader(reader);
            return this.decode(reader, reader.uint32());
        };

        /**
         * Verifies a UserST message.
         * @function verify
         * @memberof awesomepackage.UserST
         * @static
         * @param {Object.<string,*>} message Plain object to verify
         * @returns {string|null} `null` if valid, otherwise the reason why it is not
         */
        UserST.verify = function verify(message) {
            if (typeof message !== "object" || message === null)
                return "object expected";
            if (message.UID != null && message.hasOwnProperty("UID"))
                if (!$util.isString(message.UID))
                    return "UID: string expected";
            if (message.ServerID != null && message.hasOwnProperty("ServerID"))
                if (!$util.isString(message.ServerID))
                    return "ServerID: string expected";
            if (message.RoleUID != null && message.hasOwnProperty("RoleUID"))
                if (!$util.isString(message.RoleUID))
                    return "RoleUID: string expected";
            if (message.RoleName != null && message.hasOwnProperty("RoleName"))
                if (!$util.isString(message.RoleName))
                    return "RoleName: string expected";
            if (message.RoleLev != null && message.hasOwnProperty("RoleLev"))
                if (!$util.isString(message.RoleLev))
                    return "RoleLev: string expected";
            if (message.Coin != null && message.hasOwnProperty("Coin"))
                if (!$util.isString(message.Coin))
                    return "Coin: string expected";
            return null;
        };

        return UserST;
    })();

    return awesomepackage;
})();